#pragma once

#include "GMCmdParser.h"
#include "GMCmdString.h"

class GMCmdManager
{
public:
	GMCmdManager(void);
	~GMCmdManager(void);

	bool					ParseCommand( DWORD dwPlayerKey, const char* szCmd );
	bool					ProcessCommand( DWORD dwPlayerKey, vector<string>& vecCmd );
	Player*					GetGMPlayer( DWORD dwPlayerKey );
	bool					GetRankItem( SCItemSlot* pItemSlot, int nOptionIndex );

private:
	bool ProcessEntrance( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessSpeed( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessWhisper( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessTransparent( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessInvincibility( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessAccount( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessRemovalMonster( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessRemoval( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessKill( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessCreateItem( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessCreateHime( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessLevelUp( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessDisConnect( DWORD dwPlayerKey, vector<string>& vecCmd );		
	bool ProcessRebirth( DWORD dwPlayerKey, vector<string>& vecCmd );		
	bool ProcessRecovery( DWORD dwPlayerKey, vector<string>& vecCmd );		
	bool ProcessCreateMonster( DWORD dwPlayerKey, vector<string>& vecCmd );		
	bool ProcessRemovalItem( DWORD dwPlayerKey, vector<string>& vecCmd );		
	bool ProcessStatPointUp( DWORD dwPlayerKey, vector<string>& vecCmd );		
	bool ProcessSkillPointUp( DWORD dwPlayerKey, vector<string>& vecCmd );	
	bool ProcessCharInfo( DWORD dwPlayerKey, vector<string>& vecCmd );	
	bool ProcessRoomInfo( DWORD dwPlayerKey, vector<string>& vecCmd );	
	bool ProcessCreateEnchantItem( DWORD dwPlayerKey, vector<string>& vecCmd );
	bool ProcessCreateItemEx( DWORD dwPlayerKey, vector<string>& vecCmd );


public:
	GMCmdParser		m_Parser;
	GMCmdString		m_GMString;
	vector<string>	m_vecCmd;


};
